package com.livew.framework.utils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * List工具类<br>
 * 
 * 
 *
 */
public class XTListUtils {
	
	private XTListUtils(){
	}
	
	/**
	 * 验证collection是否为空
	 * @param c
	 * @return
	 */
	public static boolean isEmpty(Collection<?> c){
		return c==null||c.size()<=0;
	}
	
	/**
	 * 验证lists中的集合是否都为空
	 * @param lists
	 * @return
	 */
	public static boolean isAllEmpty(Collection<?>... collections){
		if(collections==null||collections.length<=0){
			return true;
		}
		boolean isEmpty = true;
		for(Collection<?> collection:collections){
			if(collection!=null&&collection.size()>0){
				isEmpty = false;
				break;
			}
		}
		return isEmpty;
	}
	
	/**
	 * 将list分割成多个长度为size的小集合(最后一个存放剩余的元素)，并返回
	 * @param list
	 * @param size
	 * @return
	 */
	public static List<List<?>> split(List<?> list,int size){
		if(list==null||list.size()<=0){
			return null;
		}
		double srcSize = list.size();
		int newListSize = (int) Math.ceil(srcSize/size);
		List<List<?>> nl = new ArrayList<List<?>>(newListSize);
		int fromIndex = 0;
		int toIndex = 0;
		while(newListSize>0){
			fromIndex = toIndex;
			if(newListSize==1){//最后一次数量数量有可能减少，因此通过list的size获取toIndex
				toIndex = list.size();
			}else{
				toIndex = fromIndex+size;
			}
			List<?> subList = list.subList(fromIndex, toIndex);
			nl.add(subList);
			newListSize--;
		}
		return nl;
	}
}
